Mission briefing
Kia ora, future engineer
A CubeSat is a fully working mini-satellite, often no bigger than a tissue box. Real ones orbit Earth doing science, relaying communications and testing new space technology. EduSat is your training CubeSat — it won't fly to orbit, but it carries the same kinds of subsystems as the real thing.
Structure
The frame that holds every other system in place and keeps it safe.
Brain
The onboard computer that reads sensors and decides what happens next.
Senses
Sensors that feel direction, tilt and temperature.
Voice
A radio link that lets your satellite talk to the ground without a single wire.
Every system you build today has a working cousin flying about 500km above New Zealand right now, aboard TPA-1. Build EduSat well, and you'll understand exactly how it — and its successor, TPA-2 — actually work.
Inspire
Space science and engineering, up close and achievable.
Educate
Real skills in electronics, scientific method, data and code.
Demonstrate
A working build that returns real data you can question and test.
Gear check
Before you start
Lay everything out and tick it off. Kits can vary a little between schools, so check with your teacher if something on this list is missing.
Tools
Structure parts
Electronics
Build log
Stage by stage
Three curriculum stages — work through them in order or jump to where your team is.
Wiring diagram
Block diagram — boxes are components, arrows show connections. This grows as you move through the steps below: it currently shows everything wired up to and including Step 1 — Power.
Signal-by-signal wiring reference
| Stage | Signal | From | To | Notes |
|---|---|---|---|---|
| 1 | I2C SDA | Arduino A4 | XC4496 SDA + GY-521 SDA | Shared bus — both sensors use the same two wires |
| 1 | I2C SCL | Arduino A5 | XC4496 SCL + GY-521 SCL | Shared bus |
| 1 | XC4496 power | Arduino 5V / GND | XC4496 VCC / GND | Built-in level shifter |
| 1 | GY-521 power | Arduino 5V (or 3.3V) / GND | GY-521 VCC / GND | Onboard 3.3V LDO |
| 1 | Temperature signal | Arduino A0 | LM335 signal pin | Analog input |
| 1 | LM335 power | Arduino 5V / GND | LM335 VCC / GND | |
| 2 | Dongle TX → Nano RX | On-board LoRa dongle TX | Arduino D2 (SoftwareSerial RX) | Set the dongle's jumper to UART mode first |
| 2 | Nano TX → Dongle RX | Arduino D3 (SoftwareSerial TX) | On-board LoRa dongle RX | |
| 2 | Dongle power | Arduino 5V / GND | Dongle VCC / GND | Antenna must be fitted before power-up |
| 3 | 3.3V regulator input | Arduino 5V | VC2009 IN | |
| 3 | 3.3V regulator output | VC2009 OUT | Payload power connector pins 1 & 2 | This is the payload's 3.3V rail |
| 3 | Payload ground | Arduino / VC2009 GND | Payload power connector pins 4 & 5 | Pin 3 is spare/keying — leave unconnected |
| 3 | SPI CS | Arduino D10 | MCP2515 CS | |
| 3 | SPI MISO | Arduino D12 | MCP2515 SO | |
| 3 | SPI MOSI | Arduino D11 | MCP2515 SI | |
| 3 | SPI SCK | Arduino D13 | MCP2515 SCK | |
| 3 | MCP2515 power | Arduino 5V / GND | MCP2515 VCC / GND | |
| 3 | CAN_L | MCP2515/TJA1050 CAN_L | Payload CAN connector pins 1 & 2 | Kept on its own connector, separate from power |
| 3 | CAN_H | MCP2515/TJA1050 CAN_H | Payload CAN connector pins 3 & 4 |
This table grows alongside the diagram above — rows appear as each connection is introduced by the step you're on. Not seeing a row you expected? Move forward to the step that wires it up.
Mission control
Talk to your satellite
No hardware wired up yet? Practice here first — these are the exact words your real EduSat is listening for over the radio.
These numbers are simulated for practice. Once your hardware is wired up and the code is uploaded, real sensor data will come back here instead.
Talk to it for real: the ground station script
This simulator runs in your browser, but browsers can't normally talk to a serial port. To send real commands and log real telemetry once your hardware is built, run this small Python script on the computer connected to your ground LoRa dongle (or directly to the Arduino via USB for Stage 1).
- Plug in your ground LoRa dongle (Stage 2/3) or the Arduino itself (Stage 1) and note which port it appears as.
- Run
python edusat_ground_station.py --listif you're not sure which port to use. - Run
python edusat_ground_station.py --port <your port>— add--log flight.csvto save every line with a timestamp. - Type a command (
temp,mag,imu,all,stop) and press enter, same as in the simulator above.
Payload development
Build a payload of your own
EduSat's starter sensors are just the beginning. Wire on an extra payload board over CAN and give your satellite a real mission of its own — this is exactly the kind of challenge TPA-2's real schools payload competition is built around.
Payload interface
| Power connector | 5-pin header: pins 1-2 are 3.3V, pins 4-5 are GND (pin 3 is spare/keying — confirm with your team before relying on it). Doubling the pins gives a more vibration-resistant connection, the same reason real flight connectors often double up critical pins. |
|---|---|
| CAN connector | 4-pin header, kept separate from power: pins 1-2 are CAN_L, pins 3-4 are CAN_H. Splitting CAN onto its own connector means you can't accidentally feed power down a data line. |
| Bus module | MCP2515 CAN controller with a TJA1050 transceiver, wired to the Arduino over SPI on its own chip-select pin. |
| Power source | 3.3V from EduSat's own VC2009 regulator — not raw 5V — so your payload board can use simple 3.3V parts without needing its own regulator. Keep your payload's current draw under roughly 500mA, leaving headroom for the sensor bus. |
| Data | Plain CAN messages to start — try ID 0x100 for telemetry and 0x101 for commands. Layering CSP (CubeSat Space Protocol) on top, like TPA-2's real interface, is a great stretch goal. |
| Footprint | Aim to fit within roughly 90 x 96mm — the same footprint EduSat's own board is designed around. |
Note: TPA-2's real schools-payload slot carries CAN and power on a single combined 4-pin connector. EduSat splits them across two connectors instead — a deliberate trade-off so power can never be cross-wired into a data pin — so match the signal types (3.3V, CAN_H/L), not the connector count, if you're aiming for compatibility.
Design your payload in KiCad
Every real TPA-SI board — including TPA-1 and TPA-2 themselves — is designed in KiCad, a free, open-source electronics design tool. Capturing your payload as a proper schematic (not just a breadboard photo) is how a design gets reviewed, shared with your team, and eventually turned into a real PCB.
1. Install KiCad
- Download KiCad (free) from kicad.org/download — versions 7 or 8 both work fine for this.
- Windows: run the installer and accept the defaults. macOS: open the .dmg and drag KiCad to Applications. Linux: use your distro's package manager (e.g.
sudo apt install kicadon Ubuntu/Debian) or the instructions on the download page. - Open KiCad once it's installed to confirm it launches — you don't need to create a project yet.
2. Start from the provided schematic
Rather than starting from a blank sheet, every team starts from the same base circuit: the microcontroller, power and CAN/I2C interface circuitry from TPA-1's real Thermal Monitoring Board, with the temperature-sensing and analog filtering stripped back out. It's the same MSP430FR5859 microcontroller, power interface, JTAG/reset, CAN interface and I2C port used on real TPA-SI hardware — proven circuitry, ready for you to build your payload's own sensing circuit around.
EduSat_Payload_Starter.kicad_sch
Derived from TPA-1's Thermal Monitoring Board (Rev 2). Kept: power interface, MSP430FR5859 microcontroller, JTAG/reset/status LED, CAN interface, I2C port. Removed: the temperature-sensor connectors, external-sensor mounting-hole filtering, and the analog op-amp buffer bank — that's the part you're designing.
- Open KiCad, then File > Open (or drag the downloaded file onto the KiCad window) to open
EduSat_Payload_Starter.kicad_schdirectly in Eeschema, KiCad's schematic editor. - Have a look around first — zoom into each labelled block (Power interface, Microcontroller, JTAG, CAN Interface, I2C port) and compare it against the Payload interface table above.
- Note the spare MCU pins already labelled on the sheet (A0, A3–A6, A12–A15) — these are analog inputs freed up when the temperature circuitry was removed, and are fair game for your own sensors if you want to use them instead of (or alongside) the CAN interface.
3. Add your payload circuit
- Place > Symbol (or press
A) to add parts. Search the built-in libraries for your sensor or IC by name — most common parts (op-amps, sensors, connectors, passives) are already in KiCad's standard libraries. - Wire your circuit to the existing MCU pins or to the CAN/power connectors already on the sheet — don't redraw the interface circuitry, just connect into it.
- Give every net a sensible label (Place > Net Label) rather than trailing wires everywhere — it keeps the sheet readable and matches how the rest of the schematic is done.
- Add your own title block details (Place > Text or double-click the title block) so your team and payload idea are identified on the sheet.
4. Check it, then share it
- Run Inspect > Electrical Rules Checker (ERC) and resolve anything it flags — unconnected pins are the most common issue for a first schematic.
- Save the file and bring it to your next check-in — a real schematic, even a rough one, is far easier for a mentor to give feedback on than a description.
Does your idea pass the test?
These are the same three tests TPA-SI's panel uses to judge real proposals for TPA-2's schools payload slot.
- 1Does something meaningful and measurable — not just blink a light.
- 2Is reproducible in a classroom setting, so other teams can generate comparison data.
- 3Is buildable by secondary school students with reasonable supervision and budget.
Idea checker
From idea to integration
Three example payloads
Thermal cycling logger
Every orbit, a real satellite swings from sunlight into shadow and back — a huge thermal swing that stresses electronics and joints.
Measure it: log temperature every minute for a full day. Compare a team near a sunny window against a team in a shaded corner.
Sunlight exposure logger
Solar panel orientation and material lifespan both depend on how much sunlight a surface actually receives over time.
Measure it: log light level through the school day. Compare a south-facing window against a north-facing one.
Launch vibration logger
Every satellite must survive several minutes of intense shaking on top of a rocket before it ever reaches space.
Measure it: run a gentle classroom shake test and log peak g-force. Compare a padded mounting against an unpadded one.
Flight glossary
Mission vocabulary
Short definitions to start. Click any term for the full detail.